Design of a product with a plurality of interrelated parts is currently a difficult, expensive, and time consuming task. As an example, many products include components that are assembled and dissembled by a user and, as such, these components may be designed to allow for easy assembly by the user. The parts may additionally be configured to remain secure while assembled, but still be relatively easy for the user to disassemble (partially and/or fully). Designing and producing these products is currently difficult because product designers must physically create a prototype and test that prototype for acceptability. If the prototype is not acceptable, the product designers must redesign and recreate the prototype. As it often takes numerous repetitions of this process to design a product that meets the desired specifications, a need exists in the industry.